library IEEE;
use IEEE.STD_LOGIC_1164.all;

--library STD;
--use STD.standard.all;

package Achtung_const is
-- Logic type for coding data in RAM
subtype RAM_Data is std_logic_vector (1 downto 0);
-- VGA output color type
subtype RGB_Color is std_logic_vector (2 downto 0);  
-- SRAM native Address type
subtype SRAM_Address is std_logic_vector (17 downto 0);
-- SRAM native Data type
subtype SRAM_Data is std_logic_vector (15 downto 0);
-- Key pressed coding type
subtype PAD_KEY is std_logic_vector (1 downto 0);
 
-- Constants for logic data RAM coding
constant BACKGROUND		: RAM_Data := "00";
constant PLAYER1		: RAM_Data := "01";
constant PLAYER2		: RAM_Data := "10"; 
constant UNUSED			: RAM_Data := "11";

-- Constants for SRAM commands 
constant RAM_READ_COMM : std_logic_vector(1 downto 0) := "01";
constant RAM_WRIT_COMM : std_logic_vector(1 downto 0) := "10";
constant RAM_NONE_COMM : std_logic_vector(1 downto 0) := "00";

-- Constants with color coding
constant BACKGROUND_COLOR	: RGB_Color := "000";
constant PLAYER1_COLOR		: RGB_Color := "010";
constant PLAYER2_COLOR		: RGB_Color := "001";

-- Screen size
constant SCREEN_WIDTH		: integer := 640;
constant SCREEN_HEIGHT		: integer := 480;

-- Button pressed codes
constant KEY_NONE			: PAD_KEY := "00";
constant KEY_LEFT			: PAD_KEY := "10";
constant KEY_RIGHT			: PAD_KEY := "01";
constant KEY_ACCEPT			: PAD_KEY := "11";

end;
